import UcRequest, { UcResponse } from './ucRequest'
/**
 * 账户信息
 * 
 * 可用于检查账户是否存在
 */
export default class UserInfoRequest extends UcRequest
{
    module = 'user'
    action = 'get_user'
    httpMethod = 'get'
    /**
     * 
     * @param {string|number} username 
     * @param {number} isuid 标记参数`username`的含义：0=用户名，1=用户ID， 
     */
    constructor(username, isUid = 0){
        super()
        this.params = {
            username:username,
            isuid:isUid,
        }
    }
    
}

export class UserInfoResponse extends UcResponse
{
    constructor(respRaw){
        super(respRaw);
        if(isNaN(respRaw)){
            // 成功后会返回xml格式的数据，里面实际上是有3个成员的数组
            let xmlParser = new DOMParser(),
            xmlDom = xmlParser.parseFromString(respRaw, 'application/xml')
            let uId = xmlDom.getElementById(0)?parseInt(xmlDom.getElementById(0).textContent):0; // 用户不存在时respRaw为0
            uId = isNaN(uId)?0:uId;
            if(uId > 0){
                this.userId = uId; // [0] number 大于 0:返回用户 ID，如用户不存在，返回值为 integer 的数值 0。 
                this.username = xmlDom.getElementById(1).textContent; // [1] string 用户名
                this.email = xmlDom.getElementById(2).textContent; // [2] string Email
                this.errCode = 1;
                this.errMsg = '操作成功';
                this.isSuccess = true;
                return;
            }
        }
        this.userId = 0;
        this.errCode = typeof uId === 'undefined' ? respRaw : uId;
        this.isSuccess = false;
        switch(this.errCode){
            case 0:
                this.errMsg = '用户不存在，或者被删除';
                break;
            case -1:
            default:
                if(respRaw.length > 0){
                    this.errMsg = respRaw; // 如果响应的正文是文本信息，则直接作为错误消息
                }else{
                    this.errMsg = '未知的错误！';
                }
        }
    }
}